The invention pertains to machine vision and, more particularly, to methods for finding an object represented in an image, e.g., back-lit objects, such as semiconductor chips.
Machine vision refers to the automated analysis of an image to determine characteristics of objects and other features shown therein. It is often employed in automated manufacturing lines, where images of components are analyzed to determine placement and alignment prior to assembly. Machine vision is also used for quality assurance. For example, in the pharmaceutical and food packing industries, images of packages are analyzed to insure that product labels, lot numbers, xe2x80x9cfreshnessxe2x80x9d dates, and the like, are properly positioned and legible.
In many machine vision applications, it is often essential to identify the boundaries of objects in images. In the semiconductor industry, for example, semiconductor chips must be precisely positioned and oriented before they can be soldered into place on a printed circuit board. Typically, those components are xe2x80x9cback-lit,xe2x80x9d i.e., illuminated from behind such that images of only their silhouettes are presented for machine vision analysis.
The machine vision analysis of back-lit semiconductor chips can be difficult because the visual features (e.g., edge points) presented in their images must be matched to internal models of the components. This is necessary to permit determination of accurate transformations from model to physical coordinates (i.e., the physical position of the chip). The process must be fast, moreover, so that an automated surface mounter can inspect and place each device on the board quickly. It must also be accurate enough to insure that chip leads substantially contact pads on the board.
This problem may be complicated further by extraneous structures in the images. Like other delicate electronic components, semiconductor chips are typically manipulated during assembly by suction nozzles. The small vacuum tip of a suction nozzle is used to pick the chips out of bins, present them for inspection to the machine vision camera, and place them on boards. Although the nozzles are usually arranged to pick up the chips from behind, they sometimes cast shadows or protrude beyond the edges of the chips, resulting in silhouettes that interfere with determination of chip location, orientation, and other characteristics.
Other complications arise from the lighting conditions. Often, back-lighting will cause the otherwise rectangular chips to appear as if they have rounded corners. Image features extracted around these corner points do not accurately reflect the physical structure of the chip and, consequently, also confound location and inspection.
Still further, as with other manufactured devices, each chip has a slightly different size and shape. Although each chip must satisfy a set of manufacturing specifications, e.g., width and length tolerances, there is no guarantee that chip corners will be sharp, nor that edges will be completely straight.
It is therefore an object of this invention to provide improved machine vision methods and, particularly, improved methods for determining the location and other characteristics of an object in an image.
A further object is to provide such methods as permit the rapid determination of characteristics, such as dimensions, position, and orientation, of rectilinear and other polygonal objects.
Still another object is to provide such methods as can be adapted for use in analyzing images of back-lit objects.
Yet another object is to provide such methods as can be readily implemented on conventional digital data processors or other conventional machine vision analysis equipment.
Another object of the invention is to provide such methods that can rapidly analyze images without undue consumption of computational resources.
The invention is a method for finding a pattern in an image using a full curvilinear model having a plurality of sub-models. Each sub-model includes at least one vertex of the full model and at least a portion of each segment connected to each vertex. Generally, the method includes maximizing the percentage of each segment connected to each vertex, and finding the pattern in the image using the model so-constructed. Each sub-model can include exactly one vertex, or more than one vertex. In a preferred embodiment, maximizing the percentage of each segment connected to each vertex of a sub-model includes including the entirety of each segment. In an alternate preferred embodiment, maximizing the percentage of each segment connected to each vertex of a sub-model includes incorporating only and all of those portions of segments that lie outside a specified occlusion region. The specified occlusion region is enclosed by an occlusion boundary that is defined by an object profile. Alternatively, the specified occlusion region can be enclosed by an occlusion boundary that is based on empirical statistics and a threshold. In another preferred embodiment, maximizing the percentage of each segment connected to each vertex of a sub-model includes using only those portions of the segments that extend from a vertex to the boundary of an occlusion region.
In another embodiment of the invention, in a method for finding a pattern in an image using a full curvilinear model having a plurality of sub-models, each sub-model including a single vertex and a first and second segment connected thereto, the method includes: providing a model having at least two sub-models, where the two sub-models are in substantially overlapping relationship along most of a first segment of each of the two sub-models, and each of the two sub-models also each have a second segment that extends in non-overlapping relationship. In a preferred embodiment, a second segment extends so as not to extend into an occlusion region. The occlusion region can be enclosed by an occlusion boundary that is defined by an object profile. Alternatively, the occlusion region is enclosed by an occlusion boundary is based on empirical statistics and a threshold.
In another general embodiment of the invention, a method is provided for finding a pattern in an image using a model having a plurality of sub-models. The method includes providing a model having a plurality of sub-models, each sub-model including a first vertex and a second vertex, where a first segment connects the first vertex and the second vertex, a second segment extends from the first vertex, and a third segment extends from the second vertex, wherein the second segment extends so as not to extend into an occlusion region, and the third segment extends so as not to extend into an occlusion region. The pattern is then found in the image using the model. The occlusion region is enclosed by an occlusion boundary that is defined by an object profile. Alternatively, the occlusion region is enclosed by an occlusion boundary is based on empirical statistics and a threshold.
In another general aspect of the invention, a method is provided for finding a pattern in an image using a full curvilinear model having a plurality of sub-models. The method includes providing a model having a plurality of sub-models, each sub-model including a first vertex and a second vertex, a first segment connecting the first vertex and the second vertex, a second segment extending from the first vertex, and a third segment extending from the second vertex, the second segment extending so as not to include an occlusion region, and so as to include remaining portions of the second segment, and the third segment extending so as not include an occlusion region, and so as to include remaining portions of the third segment. Then, the pattern is found using the model.